// 请实现选择排序函数 selectionSortSimple(arr)，将数组升序排序.
// 思路：遍历数组，选出每轮循环最小的元素，将其与当前元素交换位置，直到数组完全排序。 时间复杂度为 O(n^2)。空间复杂度为 O(1)。
function selectionSortSimple(arr) {
  for (let i = 0; i < arr.length - 1; i++) {
    let minIndex = i; // 从 i 开始
    for (let j = i + 1; j < arr.length; j++) {
      if (arr[j] < arr[minIndex]) {
        minIndex = j; // 更新最小值索引
      }
    }
    // i 是外层循环当前位置的索引，表示我们要放最小元素的位置。
    if (minIndex !== i) { //可不判断
      let temp = arr[i];
      arr[i] = arr[minIndex];
      arr[minIndex] = temp;
    }
  }
  return arr;
}

console.log(selectionSortSimple([1, 5, 9, 6, 4, 2])); // [1, 2, 4, 5, 6, 9]
/*
1：1 5 9 6 4 2
2：1 2 9 6 4 5
3：1 2 4 6 9 5
4：1 2 4 5 9 6 
5：1 2 4 5 6 9
*/
